package org.wendu.wdoa.newassi.dao;

import org.apache.ibatis.annotations.*;
import org.wendu.wdoa.common.page.PageParam;
import org.wendu.wdoa.newassi.dto.TaskAddDto;
import org.wendu.wdoa.newassi.dto.TaskNewassiQueryDto;
import org.wendu.wdoa.newassi.dto.TaskRecDto;
import org.wendu.wdoa.newassi.model.DepEmp;
import org.wendu.wdoa.newassi.model.TaskNewassi;

import java.util.List;
@Mapper
public interface TaskNewassiDao {


    List<TaskNewassi> getLeaderTaskList(@Param("userId") String userId, @Param("pageParam")PageParam pageParam);
    @Select("select ifnull(max(convert(task_id,unsigned)),0)+1 from t_task")
    String findNewId();

    @Insert("insert into t_task(task_id,leader_id,task_title,task_details,task_status,task_date) values(#{taskAddDto.task_id},#{userId},#{taskAddDto.task_title},#{taskAddDto.task_details},#{taskAddDto.task_status},#{taskAddDto.task_date})")
    void InsertTask(String userId, TaskAddDto taskAddDto);

    @Select("select e_id,e_name,e_sex,d_id from t_emp where d_id = (select d_id from t_mgr where e_id=#{userId}) and e_id != #{userId} and e_id not in (select e_id from t_task_rec where task_id=#{pageParam.task_id} )")
    List<DepEmp> getDepEmpTaskList(@Param("userId") String userId, @Param("pageParam") PageParam pageParam);

    @Insert("insert into t_task_rec(tr_id,e_id,tr_assign_date,task_id,tr_status) values(#{taskRecDto.tr_id},#{eid},#{taskRecDto.tr_assign_date},#{task_id},#{taskRecDto.tr_status})")
    void addEmpDepTaskMulti(@Param("eid") String eid, @Param("taskRecDto") TaskRecDto taskRecDto,@Param("task_id") String task_id);
    @Select("select ifnull(max(convert(tr_id,unsigned)),0)+1 from t_task_rec")
    String findEmpDepTaskNewId();

    @Update("update t_task set task_title=#{task_title},task_details=#{task_details},task_status=#{task_status} where task_id=#{task_id}")
    void updateTaskInfomation(TaskNewassiQueryDto taskNewassiQueryDto);
    @Update("update t_task set task_status=#{task_status} where task_id=#{task_id}")
    void queDingTaskInformation(TaskNewassiQueryDto taskNewassiQueryDto);
}
